#include <bits/stdc++.h>
using namespace std;
int a[200010];
int dp[200010][2];
int nxt[200010];
int ans[200010];
void solve(int n){
    memset(dp,0,sizeof(dp));
    memset(nxt,0,sizeof(nxt));
    memset(ans,0,sizeof(ans));
    for(int i=0;i<n;i++)cin>>a[i];
    for(int i=1;i<n;i++){
        ans[i]=ans[i-1]+a[i]*(a[i]==a[i-1]);
    }
    nxt[n-1]=n-1;
    for(int i=n-2;i>=0;i--){
        if(a[i]==a[i+1])nxt[i]=nxt[i+1];
        else nxt[i]=i;
    }
    map<int,int>mp;
    mp[a[0]]=-1;
    for(int i=1;i<n;i++){
        if(!mp.count(a[i])){
            mp[a[i]]=i;
        }
        else{
            dp[i][0]=dp[i][1]=max(dp[i-1][0],dp[i-1][1]);
            dp[i][0]=max(dp[i][0],dp[mp[a[i]]+1][1]+a[mp[a[i]]+1]*(nxt[mp[a[i]]+1]-mp[a[i]])+dp[mp[a[i]]][0]+a[i]+ans[i-1]-ans[nxt[mp[a[i]]]]);
            dp[i][1]=max(dp[i][1],dp[mp[a[i]]+1][0]+a[mp[a[i]]+1]*(nxt[mp[a[i]]+1]-mp[a[i]])+dp[mp[a[i]]][1]+a[i]+ans[i-1]-ans[nxt[mp[a[i]]]]);
            mp[a[i]]=i;
        }
    }
    cout<<max(dp[n-1][0],dp[n-1][1])<<endl;
}
signed main(){
    freopen("color.in","r",stdin);
    freopen("color.out","w",stdout);
    int T;
    cin>>T;
    while(T--){
        int n;
        cin>>n;
        solve(n);
    }
    return 0;
}